//定义一个全局变量，项目的根路径
//获取当前网址，如：
var curWwwPath=window.document.location.href;
//获取主机地址之后的目录如：/Tmall/index.jsp
var pathName=window.document.location.pathname;
var pos=curWwwPath.indexOf(pathName);
//获取主机地址，如：//localhost:8080
var localhostPaht=curWwwPath.substring(0,pos);
//获取带"/"的项目名，如：/Tmall
var projectName=pathName.substring(0,pathName.substr(1).indexOf('/')+1); 
//系统根路径
var pageContextPath=projectName;

//分页插件的全局变量
var pNumber = 1;
var pSize = 5;

/**
 * 使用post方式向后台发送请求
 * @param url 请求的URL
 * @param data 序列化参数
 * 请求的参数,
 * 参数可以通过序列化传输：var params = $("#login").serialize();
 * login为form表单的id。
 * 通过form表单的name标识，控制层通过参数对应的name来接收或对象（属性同名）来接收
 * @param succssFun
 * 加载成功后的函数，回调方法，请求返回时response返回数据时包含了dataType，如：json数据对象
 */
function sendRequest(url, data, succssFun,asy) {
	var async = true;//默认为true,异步请求。
    if(asy==undefined){
    	async = true;
    } 
    if(asy == false) {
    	async = false;//同步请求，必须等该请求执行完，才能在去请求其他的URL。
    }
    $.ajax({
        url:url,
        dataType:'json',
        type:'post',
        data:data,
        async:async,  
        success: function(result) {//jsonData为response数据
        	layer.closeAll('loading');
        	var code = result.code;
        	if(code==-3){	//登录用户失效
           		layer.alert(result.msg+'<br/>点击前往登录页面:'+'<a href="'+pageContextPath+'/login.jsp">登录页面</a>');
           	} else if(code==-4){
                layer.alert("您没有操作权限 ！！！");
            } else {
            	succssFun(result);
            }
            return false;
        },
        error:function(jsonData) {
        	layer.closeAll();
            layer.msg("请求服务器异常！");
            return true;
        }
    });
}
/***
 * 文件上传时的异步请求
 * @param url
 * @param data
 * @param succssFun
 * @param asy
 * @returns
 */
function sendFileUploadRequest(url, data, succssFun,asy) {
	var async = true;//默认为true,异步请求。
	if(asy==undefined){
		async = true;
	} 
	if(asy == false) {
		async = false;//同步请求，必须等该请求执行完，才能在去请求其他的URL。
	}
	$.ajax({
		url:url,
		dataType:'json',
		type:'post',
		data:data,
		async:async,  
		cache: false, 
		processData: false,
        contentType : false,
		success: function(result) {//jsonData为response数据
			layer.closeAll('loading');
			var code = result.code;
			if(code==-3){	//登录用户失效
				layer.alert(result.msg+'<br/>点击前往登录页面:'+'<a href="'+pageContextPath+'/login.jsp">登录页面</a>');
			} else if(code==-4){
				layer.alert("您没有操作权限 ！！！");
			} else {
				succssFun(result);
			}
			return false;
		},
		error:function(jsonData) {
			layer.closeAll();
			layer.msg("请求服务器异常！请及时联系工程师解决！！！");
			return true;
		}
	});
}
/**
 *  $.ajax(,async不设置默认为true
 * 使用get方式向后台发送请求
 * @param url 请求的URL
 * @param data 请求的参数
 * @param succssFun 加载成功后的函数
 */
function sendRequestByGet(url, data, succssFun) {
    $.ajax({
        url: url ,
        dataType: 'json',
        type:'get',
        data:data,
        complete:function(jsonData){
        },
        success: function(jsonData) {
            if (!jsonData.result) {
            	if (jsonData.code == -3) {
            		top.location.href=pageContextPath+"/login.jsp";
            	} else if (jsonData.errorCode == 0) {
                } else {
                    succssFun(jsonData);//调用传递进来的参数函数。
                }
            	
                if (jsonData.errorCode == -2000) {
                    // 没有权限访问时就跳转到登录页面
                	top.location.href=pageContextPath+"/login.jsp";
                } else if (jsonData.errorCode == 0) {
                  
                }else {
                    succssFun(jsonData);
                }
            } else {
                succssFun(jsonData);
            }
        },
        error:function(jsonData) {
           // alert("对不起，系统正忙请您稍后重试!");
        }
    });
}
/**
 * 获取url中的参数值,方法1
 * @param paras为?后的参数名，通过该方法能获取到该参数名对应的参数值
 */
function getURLParams(paras) {
    // var url = location.href;
    //var url = "http://192.168.1.73:9220/paoms/index.html?testParam=123";
    var url = window.location.href;
    var paraString = url.substring(url.indexOf("?") + 1, url.length).split("&");
    var paraObj = {};
    for (i = 0; j = paraString[i]; i++) {
        paraObj[j.substring(0, j.indexOf("=")).toLowerCase()] = j.substring(j.indexOf("=") + 1, j.length);
    }
    var returnValue = paraObj[paras.toLowerCase()];
    if (typeof(returnValue) == "undefined") {
        return "";
    } else {
        return returnValue;
    }
}
/**
 * 获取地址栏?后的参数值，方法2
 * @param name传入?后的参数名
 */
function getQueryString(name) {
    var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
    var r = window.location.search.substr(1).match(reg);
    if (r != null) return unescape(r[2]); return null;
}
/**
 * 使用AJAX提交表单
 */
function submitForm(formId, url, successFun, errorFun) {
    $(formId).formSerialize();
    var options = {
        url:url,
        type:'POST',
        dataType:'json',
        success : function(jsonData) {
            if (!jsonData.result) {
                if (jsonData.errorCode == -2000) {
                    // 没有权限访问时就跳转到登录页面
                	top.location.href=pageContextPath+"/login.jsp";
                } else if (jsonData.errorCode == 0) {
                    //alert("对不起，系统正忙请您稍后重试!");
                } else {
                    errorFun(jsonData);
                }
            } else {
                successFun(jsonData);
            }
        }
    };
    $(formId).ajaxSubmit(options);
    return false;
}
/**
 * trim函数，重写了String的trim(),比如p="  aa  ",p.trim()后可以去掉aa左右前后的空格字符。
 * 空格开头或者空格结尾
 * ^是开始
 * \s是空白
 * *表示0个或多个
 * |是或者
 * $是结尾
 * g表示全局，g:执行全局匹配,而不是找到第一个匹配就停止。
 * 匹配首尾空格的正则表达式：(^\s*)|(\s*$)
*/
String.prototype.trim = function() {  
    return this.replace(/(^\s*)|(\s*$)/g, "");  
}; 

//重置页面
function resetf(){
	location.reload();
}

//隐藏或显示筛选区 需要隐藏或展示的区域，class="clearfix"即可实现
function toggleCondi() {
    var text = $("#but_text").html();
    if (text == '显示筛选区域') {
    	toggleCondi_show();
    } else {
    	toggleCondi_hidden(); 
    }
}
function toggleCondi_hidden() {
	$("#but_text").html("显示筛选区域");
    $(".clearfix").slideUp();
    $("#toggleCondi_i").removeClass("icon-angle-up");
    $("#toggleCondi_i").addClass("icon-angle-down");
}
function toggleCondi_show() {
	$("#but_text").html("隐藏筛选区域");
     $(".clearfix").slideDown();
     $("#toggleCondi_i").removeClass("icon-angle-down");
     $("#toggleCondi_i").addClass("icon-angle-up");
}

function toggleCondi_sample() {
	var text = $("#but_text_sample").html();
	if (text == '显示筛选') {
		toggleCondi_show_sample();
	} else {
		toggleCondi_hidden_sample(); 
	}
}
function toggleCondi_hidden_sample() {
	$("#but_text_sample").html("显示筛选");
	$(".clearfix").slideUp();
	$("#toggleCondi_i").removeClass("icon-angle-up");
	$("#toggleCondi_i").addClass("icon-angle-down");
}
function toggleCondi_show_sample() {
	$("#but_text_sample").html("隐藏筛选");
	$(".clearfix").slideDown();
	$("#toggleCondi_i").removeClass("icon-angle-down");
	$("#toggleCondi_i").addClass("icon-angle-up");
}



//格式化无效数据 
function formatData(data) {
    if (data && data != null) {
        return data;
    } else {
        return "";
    }
}

//非空校验，参数为指定表单的ID，对该表单里的class="noNull"的input进行非空验证
function checkNull(formId){
	var noNull = $("#"+formId+"").find(".noNull");
	for(var i=0;i<noNull.length;i++){
		if(noNull[i].value==null||noNull[i].value==undefined||noNull[i].value==""){
			//alert(noNull[i].name);
			layer.msg("存在未填写项，请完善！");
			return "false";
		}
	}
	return "true";
}
//日期格式化
function formatDate(time){
	var date = new Date(time);
	var year = date.getFullYear(),
	month = date.getMonth() + 1,//月份是从0开始的
	day = date.getDate(),
	hour = date.getHours(),
	min = date.getMinutes(),
	sec = date.getSeconds();
	var newTime = year + '/' +
	month + '/' +
	day;
	return newTime;         
}
//日期格式化
function formatDate2(time){
	var date = new Date(time);
	var year = date.getFullYear(),
	month = date.getMonth() + 1,//月份是从0开始的
	day = date.getDate(),
	hour = date.getHours(),
	min = date.getMinutes(),
	sec = date.getSeconds();
	var newTime = year + '/' +
	month + '/' +
	day + ' ' +
	hour + ':' +
	min + ':' +
	sec;
	return newTime;         
}

//start 复制ID--------------------------------------------------------
//所有选中的id
var selectedIds = "";
//全选或全不选 mk是模块，即查询某个模块下的对象
function allAndNotAll(_this,mk) { 
    if (_this.checked){  
        $("input[name='choice']:checkbox").each(function(){ 
              $(this).attr("checked", true);  
        });
        layer.msg('拼命执行中，请稍等……', {icon: 16}, function(){
        	layer.closeAll();
        	layer.load(2);
        	//发送异步请求，获取数据
            sendRequest(pageContextPath + "/"+mk+"/selectIds.do", null, function (jsonData) {
                selectedIds = jsonData.ids;
                layer.closeAll();
            });
        });
    } else {   
        $("input[name='choice']:checkbox").each(function() {   
              $(this).attr("checked", false);  
        });
        selectedIds="";
    }  
}
if (window.clipboardData) {
    $('#getProp').click(function() {
        var ids = getProp();  
        if(selectedIds.trim().length>0){
  		   ids = selectedIds;
  	    }
        if(ids.trim().length>0){
            window.clipboardData.setData("Text", ids);
            layer.msg("复制成功！"); 
            $("#allAndNotAll").attr("checked", false);  
            $("input[name='choice']:checkbox").each(function(){ 
                $(this).attr("checked", false);  
          	});
            layer.msg("复制成功！");
            selectedIds="";
        }else{
            layer.alert("您没有选中行！");
        }
    });
} else {
    $("#getProp").zclip({
        path:'http://img3.job1001.com/js/ZeroClipboard/ZeroClipboard.swf',
        copy:function(){
               var ids = getProp();  
               if(selectedIds.trim().length>0){
         		  ids = selectedIds;
         	   }
               if(ids.trim().length>0){
                   return ids;
               }else{
                   layer.msg("您没有选中行！");
               }
            },
        afterCopy:function(){
        	layer.msg("复制成功！"); 
            $("#allAndNotAll").attr("checked", false);  
            $("input[name='choice']:checkbox").each(function(){ 
                $(this).attr("checked", false);  
          	});
        	layer.msg("复制成功！");
        	selectedIds="";
        }
    });
}
function getProp(){
    obj = document.getElementsByName("choice");
    var check_val = "";
    for(k in obj){
        if(obj[k].checked) {
        	check_val = check_val+" "+ obj[k].value;
        }
    }
    return check_val;
}
//end 复制ID----------------------------------------------------------------------


//错误消息 对话框表格提醒 
function errorInfo(items){
   var html = [];
   for (var i = 0; i < items.length; i++) {
	   html.push("<tr>");
	   html.push('<td>' + items[i].err_num.substring(items[i].err_num.indexOf("：")+1)+ '</td>');
	   html.push('<td>' + formatData(items[i].err_title) + '</td>');
	   html.push('<td style="color:#479DA4;">' + formatData(items[i].err_msg) + '</td>');
	   html.push('<td>' + formatData(items[i].err_field) + '</td>');
	   html.push('</tr>');
   }
   var mainObj = $('#error-body');
   mainObj.empty();
   mainObj.html(html.join(''));
    
   var errorInfoHtml = $("#errorInfoDiv").html();
   layer.open({
	    title: ['错误信息', 'font-size:18px;'],
	    type:1,
	    content: errorInfoHtml, //这里content是一个普通的String
	    btn: ['我知道了'],
	    cancel: function(){
	    	layer.closeAll('loading');
	    	return true;
	    } ,area: ['800px', '400px']
   });
   $("#error-info").removeAttr("hidden");
}

//文件上传
function uploadFile(mk) {
    //上传文件的大小和格式校验
	var ret = false;
    var maxsize = 100 * 1024 * 1024;//100M
    var name = $("#file").val();
    var ext = name.substr(name.lastIndexOf('.') + 1);
    if (ext != 'xls' && ext != 'xlsx') {//文件格式验证
        layer.msg("文件后缀只能为.xls和.xlsx!");
        $("#file").val('');
        layer.closeAll('loading');
        clicked = true;
        return ret;
    }
    var names = document.getElementById("file");
    var sizes = names.files[0].size;
    if (maxsize < sizes) {  //文件大小验证
        $("#file").val('');
        layer.msg("文件大小不能超过100M!");
        clicked = true;
        return ret;
    }
    var formData = new FormData($("#uploadForm")[0]);
    layer.msg('拼命执行中，请稍等……', {icon: 16}, function(){
    	layer.closeAll();
    	layer.load(2);
    	sendFileUploadRequest($('#uploadForm').attr("action"), formData, function(result) {
    		var code = result.code;
    		//alert(code);
			if (code == -2) { //excel校验不通过
				openUpload(mk);
				errorInfo(result.msg);
       			ret = false;
			} else if (code == -1) { // 有错误
				layer.alert(result.msg);
				ret = false;
			} else if (code == 1) {
				layer.alert("操作成功！\n"+result.msg);
        		query(pNumber,pSize);
        		
        		ret = "success";
			}
		});
    });
    return ret;
}
//是否已经点击了确定按钮，防止用户重复点击
var clicked = false;
var uploadFileHtml = $("#uploadFileForm").html();
//打开文件上传对话框 mk是指模块
function openUpload(mk) { 
	$("#uploadFileForm").remove();
	clicked = true;
    layer.open({
        title: ['请选择目标【'+mk+'Excel】文件', 'font-size:18px;'],
        type:1,
        content: uploadFileHtml, //这里content是一个普通的String
        btn: ['确认', '取消'],
        yes: function(index, layero){
        	if(clicked){
        		clicked = false;
            	var ret = uploadFile(mk);
            	if(ret=='success'){//文件上传成功
            		return false;//关闭框
            	}
        	}
        },cancel: function(){
        	layer.closeAll('loading');
        },area: ['400px', '230px']
    });
}

//下拉多选过滤，初始化数据
function selectMoreItem(mk,text,width){
	var url = pageContextPath+"/register/nothing.do";
	sendRequest(url,null,function(result) {
		var code = result.code;
		var ret = result.msg;
		if (code > 0) {
			$("#"+mk+"").attr("multiple",'multiple');
	        $("#"+mk+"").multiselect({includeSelectAllOption:true, nonSelectedText: text,enableFiltering: true,maxHeight: 300,buttonWidth: width});
		}
	});
}

//点击导航 最左
function scrollToLeft(){
    var div = $("#canvas-wrap");
    var position = 0;
    div[0].scrollLeft  = position;
}
//点击导航居中
function scrollToCenter(){
	var div = $("#canvas-wrap");
	var position = (div[0].scrollWidth  - div.width()) / 2;
    div[0].scrollLeft  = position;
}
//点击导航 最右
function scrollToRight(){
    var div = $("#canvas-wrap");
    var position = div[0].scrollWidth  - div.width();
    div[0].scrollLeft  = position;
}

//查询list结果，并调用动态创建表格填充数据
function queryList(url,params) {
	layer.load(2);//加载等待框
	sendRequest(url, params, function(ret) {
		var result = ret.msg;//Msg对象里的msg属性
		var code = ret.code;//Msg对象里的code属性
		if(code > 0){//请求正常
			$("#distribute-body").html("");
			//分页条
			$(".pageBottom").css('display', 'none');
			if (result.total == 0) {
				layer.msg("筛选后的记录数为零！");
			} else {
				if (result.pageNum == 1) {
					$('#callBackPager').extendPagination({
						totalCount : result.total,
						showPage : pSize,
						pageNum : result.pageNum,
						limit : result.pageSize,
						callback : function(curr, limit, totalCount) {
							query(curr, limit);
						}
					});
				}
				$(".pageBottom").css('display', 'block');
				createTable(result.pageNum, result.pageSize, result.total,result.list);
				$("#pageNumber").text(result.pageNum);
			}
		} else {//请求异常
			layer.alert(result);
		}
		layer.closeAll('loading');//关闭等待框
	});
}

//根据id清除文本内容
function clearText(id){
	$("#"+id+"").val("");
}
var clicked_count = 0;
function up_down_active(){
	clicked_count=clicked_count+1;
}




